The present invention concerns backup and restore operations in a network based service, ie. a plurality of apparatus in a cloud coupled to agents controlling client processors. Because of network transmission of packets, the parts of files being restored do not necessarily arrive in convenient order and may be more efficiently delivered as bulk aggregations of parts from unrelated files.
Conventionally, a series of events is recorded in non/-transitory computer readable storage, in an embodiment, ADD, REMOVE, MODIFY, and RENAME. Each event has a watermark too, which requires committing in the watermark order, yet restoring the actual files to disk and retrieving the parts over a network doesn't necessarily have to be in the order of commitment.
Problem: How do you intelligently restore file events with threads controlling a processor, without having the threads conflict?
A cloud file event server is communicatively coupled through intermittent channels to a plurality of file share clients. The cloud file event server stores the superset of all files among the file share clients. Although in a degenerate case a client may have a set of files which are not shared with any other client, a common and more useful configuration occurs when there are a plurality of clients which share a set of files but which may be divergent from one another due to unilateral file events. These file events are uniquely watermarked and may be ordered in sequence. The conventional solution for resynchronizing a file share client with a cloud file event server is to download those file events missing from the file share client and transform the file system of the file share client in watermark order. The user experience however of single threaded operation could be improved.
What is needed is a way to use multi-threaded resources to transform a file system of a file share client without conflict, deadlock, file corruption, data loss, and with improved performance.